﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using DTO;
using BUS;

namespace GUI
{
    public partial class frmLoaiSach : Form
    {
        public frmLoaiSach()
        {
            InitializeComponent();
        }
        NguoiDungDTO nd;
        public void setNguoiDung(NguoiDungDTO ndung)
        {
            this.nd = ndung;
        }
        DataTable table;
        int id;
        public void loadLoaiSach()
        {
            lvLoaiSach.Items.Clear();
            table = LoaiSachBUS.layFullLoaiSach();
            for (int i = 0; i < table.Rows.Count; i++)
            {

                ListViewItem item;
                string id = (i + 1).ToString();
                string name1 = table.Rows[i][1].ToString();
                string name2 = table.Rows[i][2].ToString();
                string name3 = table.Rows[i][3].ToString();
                string name4 = table.Rows[i][5].ToString();
                string name5 = table.Rows[i][4].ToString();
                item = new ListViewItem(id);
                item.SubItems.Add(name1);
                item.SubItems.Add(name2);
                item.SubItems.Add(name3);
                item.SubItems.Add(name4);
                item.SubItems.Add(name5);
                lvLoaiSach.Items.Add(item);
            }
        }
        private void frmLoaiSach_Load(object sender, EventArgs e)
        {
            loadLoaiSach();
        }

        private void lvLoaiSach_SelectedIndexChanged(object sender, EventArgs e)
        {
            foreach (ListViewItem lvItem in lvLoaiSach.SelectedItems)
            {
                id = Int32.Parse(lvItem.SubItems[0].Text) -1;
                txtTenLoaiSach.Text = lvItem.SubItems[1].Text;
                txtTienTo.Text = lvItem.SubItems[2].Text;
                txtMaSachNew.Text = lvItem.SubItems[3].Text;
                txtThueVAT.Text = lvItem.SubItems[4].Text;
                txtChiTiet.Text = lvItem.SubItems[5].Text;
            }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            LoaiSachDTO ls = new LoaiSachDTO();
            ls.TenLoaiSach = txtTenLoaiSach.Text;
            ls.TienTo = txtTienTo.Text;
            ls.Thue = float.Parse(txtThueVAT.Text);
            ls.ChiTiet = txtChiTiet.Text;
            ls.MaSachCapNhat = txtMaSachNew.Text;
            string idLoai = table.Rows[id][0].ToString();
            ls.Id = Int32.Parse(idLoai);
            int kt = LoaiSachBUS.kiemTra(ls);
            if (kt == 1)
            {
                MessageBox.Show("Chưa nhâp tên loại sách.");
                txtTenLoaiSach.Focus();
                return;
            }
            if (kt == 2)
            {
                MessageBox.Show("Chưa nhập tiền tố cho loại sách.");
                txtTienTo.Focus();
                return;
            }
            if (kt == 3)
            {
                MessageBox.Show("Chưa nhập thuế cho loại sách. Bạn hãy cẩn thận");
                txtThueVAT.Focus();
            }
            Boolean flag = LoaiSachBUS.updateLoaiSach(ls);
            if (flag == false)
            {
                MessageBox.Show("Sửa đổi thất bại.");
                return;
            }
            MessageBox.Show("Sửa đổi thành công.");
            loadLoaiSach();
        }

        private void btnReset_Click(object sender, EventArgs e)
        {
            txtTenLoaiSach.Text = "";
            txtTienTo.Text = "";
            txtMaSachNew.Text = "";
            txtThueVAT.Text = null;
            txtChiTiet.Text = "";
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            LoaiSachDTO ls = new LoaiSachDTO();
            ls.TenLoaiSach = txtTenLoaiSach.Text;
            ls.TienTo = txtTienTo.Text;
            ls.Thue = float.Parse(txtThueVAT.Text);
            ls.ChiTiet = txtChiTiet.Text;
            int kt = LoaiSachBUS.kiemTra(ls);
            if (kt == 1)
            {
                MessageBox.Show("Chưa nhâp tên loại sách.");
                txtTenLoaiSach.Focus();
                return;
            }
            if (kt == 2)
            {
                MessageBox.Show("Chưa nhập tiền tố cho loại sách.");
                txtTienTo.Focus();
                return;
            }
            if (kt == 3)
            {
                MessageBox.Show("Chưa nhập thuế cho loại sách. Bạn hãy cẩn thận");
                txtThueVAT.Focus();
            }
            Boolean flag = LoaiSachBUS.themLoaiSach(ls);
            if (flag == false)
            {
                MessageBox.Show("Thêm thất bại.");
                return;
            }
            MessageBox.Show("Thêm thành công.");
            loadLoaiSach();
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            int flag = -1;
            for (int i = 0; i < lvLoaiSach.Items.Count; i++)
            {
                if (lvLoaiSach.Items[i].Selected)
                {
                    flag = i;
                    break;
                }
            }
            if (flag == -1)
                return;
            string id = table.Rows[flag][0].ToString();
            Boolean bol = LoaiSachBUS.xoaLoaiSach(Int32.Parse(id));
            if (bol == false)
            {
                MessageBox.Show("Xóa thất bại.");
                return;
            }
            MessageBox.Show("Xóa thành công.");
            loadLoaiSach();
        }

        private void btnTimKiem_Click(object sender, EventArgs e)
        {
            String search = txtSearch.Text;
            Boolean f1, f2, f3;
            f1 = chbTenLS.Checked;
            f2 = chbTienTo.Checked;
            f3 = chbMaSachNew.Checked;
            String str = txtSearch.Text;
            if (str == "")
            {
                loadLoaiSach();
                return;
            }
            if (!LoaiSachBUS.kiemTraCheckbox(f1, f2, f3))
            {
                MessageBox.Show("Chưa chọn loại tìm kiếm.");
                return;
            }
            
            table = LoaiSachBUS.timKiem(f1,f2,f3,str );
            lvLoaiSach.Items.Clear();
            for (int i = 0; i < table.Rows.Count; i++)
            {

                ListViewItem item;
                string id = (i + 1).ToString();
                string name1 = table.Rows[i][1].ToString();
                string name2 = table.Rows[i][2].ToString();
                string name3 = table.Rows[i][3].ToString();
                string name4 = table.Rows[i][5].ToString();
                string name5 = table.Rows[i][4].ToString();
                item = new ListViewItem(id);
                item.SubItems.Add(name1);
                item.SubItems.Add(name2);
                item.SubItems.Add(name3);
                item.SubItems.Add(name4);
                item.SubItems.Add(name5);
                lvLoaiSach.Items.Add(item);
            }
        }

        private void txtSearch_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsLetterOrDigit(e.KeyChar) && (e.KeyChar != 8 || e.KeyChar != 13))
                e.Handled = true;
            if (e.KeyChar == 8)
                e.Handled = false;
            if (e.KeyChar == 32)
                e.Handled = false;
        }
    }
}
